Skip to content

ci: add Windows unit-test job to catch OS-specific path bugs#1522

Open
dimitri-yatsenko wants to merge 1 commit into
masterfrom
ci/windows-unit-tests
Open

ci: add Windows unit-test job to catch OS-specific path bugs#1522
dimitri-yatsenko wants to merge 1 commit into
masterfrom
ci/windows-unit-tests

Conversation

@dimitri-yatsenko

Copy link
Copy Markdown
Member

Why

The CI matrix ran Linux-only, so OS-specific defects couldn't be caught. #1520 is the motivating case: StorageBackend._full_path() rendered file-protocol paths with native backslashes on Windows, which broke garbage collection (every live file looked orphaned; collect() could delete referenced files). #1521 fixes it, but nothing in CI exercises Windows, so the regression — and its whole class — would recur silently.

What

Adds a unit-tests-windows job on windows-latest running the container-free unit suite (tests/unit) across both ends of the supported Python range (3.10, 3.14).

  • Scope: unit tests only. The DB-backed test job needs Docker/Linux containers (testcontainers), which don't fit Windows runners. The unit suite needs no containers and is where the path-handling logic (incl. Bug: GarbageCollector deletes live files on Windows due to backslash/forward-slash path mismatch in file-protocol stores #1520) actually lives, so it's the right and sufficient surface for a Windows guard.
  • Installs via pip, not pixi. pixi targets linux/osx only ([tool.pixi] platforms has no win-64, and the lock isn't solved for it), so this leg uses actions/setup-python + pip install -e ".[test]". The test extra's deps all ship Windows wheels. The existing Linux unit-tests (pixi) job is unchanged.
  • fetch-depth: 0 so hatch-vcs can derive the version on the editable install.

Notes

The CI matrix ran Linux-only, so platform-specific defects — e.g. #1520,
where file-protocol paths rendered with native backslashes broke garbage
collection on Windows — could not be caught. Add a windows-latest leg
running the container-free unit suite across both ends of the supported
Python range (3.10, 3.14).

pixi targets linux/osx only ([tool.pixi] platforms), so this leg installs
via pip (.[test]) rather than pixi. Unit tests need no containers, so no
Docker/DB is required on Windows.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant